﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DocTes.Jerarquias
{
	/// <summary>
	/// Interfaz de la fábrica usada para crear los adaptadores de los objetos Linq.
	/// </summary>
	public interface IFabricaObjetosLinqJerarquiaDocumentos
	{
		/// <summary>
		/// Método de contrucción de un objeto linq de entidad de jerarquiaCarpetas
		/// </summary>
		/// <param name="id">id de la jerarquia</param>
		/// <param name="nombre">nombre de la jerarquia(carpeta)</param>
		/// <returns>Entidad inicializada con los valores</returns>
		IEntidadLinqJerarquiaCarpeta ConstruirJerarquiaCarpeta(Guid id, string nombre);

		/// <summary>
		/// Método de contrucción de un objeto linq de entidad de documento. todos los valores
		/// deben de ser inicializados desde este.
		/// </summary>
		IEntidadLinqDocumento ConstruirDocumento();

		/// <summary>
		/// Método de construcción de asociacionPadreHijo
		/// </summary>
		/// <param name="idhijo">Id de la jerarquiaCarpeta Hijo</param>
		/// <param name="idPadre">Id de la jerarquiaCarpeta Padre</param>
		/// <returns></returns>
		IEntidadLinqAsociacionJerarquiaPadreHijo ConstruirAsociacionCarpeta(Guid idhijo, Guid idPadre);
	}
}
